/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.tewi.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import pl.tewi.types.ApplicationType;

/**
 * Konfiguracja modułów aplikacji.
 * @author Marcin Kwapisz
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Module {

    /**
     * Nazwa modułu aplikacji, domyślnie "classes".
     * @return nazwa modułu
     */
    String name() default "classes";

    /**
     * Ścieżka względna co do projektu do modułu aplikacji, domyślnie 
     * "target/classes".
     * @return ścieżka
     */
    String modulePath() default "target/classes";

    /**
     * Typ modułu aplikacji.
     * @return 
     */
    ApplicationType moduleType() default ApplicationType.JAR;

    /**
     * Deskryptor instalacyjny danego modułu.
     * @return 
     */
    String[] descriptors() default { };
}
